package com.eddie.principle.singleresponsibility;

import lombok.extern.slf4j.Slf4j;

/**
 * @author Eddie
 * @date 2022/4/27 12:44
 */
public class SingleResponsibility3 {

    public static void main(String[] args) {
        Vehicle2 vehicle2 = new Vehicle2();
        vehicle2.run("汽车");
        vehicle2.runAir("飞机");
        vehicle2.runWater("轮船");
    }

}

/**
 * 方案3的分析：
 *  1、这种修改方法没有对原来的类做大的修改，只是增加了方法
 *  2、这里虽然没有在类级别遵守单一职责原则，但是在方法级别仍然是遵守单一职责
 */
@Slf4j
class Vehicle2 {
    public void run(String vehicle) {
        log.info(vehicle + "在公路上运行");
    }

    public void runAir(String vehicle) {
        log.info(vehicle + "在天空运行");
    }

    public void runWater(String vehicle) {
        log.info(vehicle + "在水中运行");
    }
}
